<?php
 Session_Start () ;
 Include ("../../include/garennes.cfg") ;
 Include ("../../include/init.php") ;
 Include ("../include/config.inc") ;
 verif_droits ($droit_courant, $_SESSION ["code"]) ;
 
 $table = var_courante ("table", 0, null) ;
 $etape = var_courante ("etape", 0, null) ;
 $numero_etape = var_courante ("numero_etape", 0, 1) ;
 
 $nombre_etapes = 4 ;
 $repere_obligatoire = "**" ;
 $repere_non_obligatoire = "  " ;
 $millesime = millesime (0) ;
 
 /*
 * Fonction d'evaluation d'un champ s'il contient une variable
 * @param string $c Champ a evaluer
 * @return mixed Evaluation
 */
 Function evaluation_champ ($c)
  {
   Global $gestion ;
   If (SubStr ($c, 0, 1) == "@")
    {
     $c = SubStr ($c, 1, StrLen ($c)-1) ;
     $f = FOpen ("../../tmp/".Session_Id ().".tmp", "w") ;
     FPuts ($f, "<?php ") ;
     FPuts ($f, "\$c=".$c."; ") ;
     FPuts ($f, "?".">") ;
     FClose ($f) ;
     Include ("../../tmp/".Session_Id ().".tmp") ;
     UnLink ("../../tmp/".Session_Id ().".tmp") ;
    }
   Return $c ;
  }
 
 $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0'", $id_sql) ;
 $l = SQL_tableau_associatif ($resultats, "") ; 
 Echo "<html><head>" ;
 entete_html ("Garennes", "travail", 1) ;
 Echo styles ("none", "none", "none", $l ["lien"], "none") ;
 Echo "</head>" ;
 
 Echo "<body background=\"../images/fond.png\" text=\"#000000\" onContextMenu=\"return false\">" ;
 Echo "<center><font color=\"#0000FF\">Importations&nbsp;CSV&nbsp;</font></center>" ;
 
 If (IsSet ($table) And ((integer)$table > 0))
  {
   If (IsSet ($etape) And ((integer)$etape > 0))
    {
     Switch ((integer)$etape)
      {
       // Renseignements attendus
       Case 11 :
       Case 1 : Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td bgcolor=\"".$l ["lien"]."\">&nbsp;<b>Importation&nbsp;".$imp_texte [0][$table][0].".</b>&nbsp;(".$numero_etape."/".$nombre_etapes.")&nbsp;</td></tr>" ;
                Echo "<tr><td>" ;
                Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                Echo "<tr><td align=\"center\"><br>&nbsp;Pour&nbsp;utiliser&nbsp;cette&nbsp;interface,&nbsp;il&nbsp;faudra&nbsp;un&nbsp;fichier&nbsp;au&nbsp;format&nbsp;texte&nbsp;CSV&nbsp;<br>" ;
                Echo "&nbsp;avec&nbsp;les&nbsp;champs&nbsp;ci-dessous,&nbsp;<b>l'ordre&nbsp;important&nbsp;peu</b>&nbsp;:</td></tr>" ;
                Echo "<tr><td align=\"center\"><table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr bgcolor=\"".$l ["lien"]."\"><td align=\"center\"><b>&nbsp;Champs&nbsp;</b></td><td><b>&nbsp;Obligatoire&nbsp;</b></td><td><b>&nbsp;Contenu&nbsp;</b></td></tr>" ;
                For ($i = 1 ; $i <= $imp_texte [$table][0][0] ; $i++)
                 {
                  If (($imp_texte [$table][$i][0] != "") And ($imp_texte [$table][$i][2] != 3))
                   {
                    Echo "<tr" ;
                    If ($i%2 == 0) { Echo " bgcolor=\"".$l ["nom"]."\"" ; }
                    Echo "><td align=\"center\">&nbsp;".$imp_texte [$table][$i][0]."&nbsp;</td><td align=\"center\">&nbsp;" ;
                    If ($imp_texte [$table][$i][1] == 1) { Echo "X" ; }
                    Echo "&nbsp;</td><td>&nbsp;" ;
                    Switch ($imp_texte [$table][$i][2])
                     {
                      // Description
                      Case 0 : Switch ($imp_texte [$table][$i][3])
                                {
                                 Case 0 : Echo "<b>".$imp_texte [$table][$i][4]."</b>&nbsp;caract&egrave;res" ; Break ;
                                 Case 1 : Echo "Texte" ; Break ;
                                 Case 2 : Echo "A choisir parmi : <b>" ;
                                          $poss = Explode (";", $imp_texte [$table][$i][4]) ;
                                          For ($j = 0 ; $j < SizeOf ($poss) ; $j++)
                                           {
                                            $po = Explode ("->", $poss [$j]) ;
                                            If ($j > 0) { Echo ";" ; }
                                            Echo $po [0] ;
                                           }
                                          Echo "</b>" ;
                                          Break ;
                                 Case 3 : Echo "<b>Date</b>.<br>&nbsp;Formats possible : <b>AAAA-MM-JJ, AAAAMMJJ, AAAA/MM/JJ, JJ-MM-AAAA, JJMMAAAA, JJ/MM/AAAA</b>" ; Break ;
                                 Case 4 : Echo "Num&eacute;ro ou Nombre sur ".$imp_texte [$table][$i][4]." chiffre(s)" ; Break ;
                                }
                               Break ;
                      // Bdd
                      Case 1 : $champs = Explode (";", $imp_texte [$table][$i][4]) ;
                               $c = "" ;
                               For ($j = 0 ; $j < SizeOf ($champs) ; $j++)
                                {
                                 If ($j > 0) { $c .= "," ; }
                                 $c .= $champs [$j] ;
                                }
                               $ok = SQL_commande ("SELECT ".$c." FROM ".$imp_texte [$table][$i][3]." ORDER BY ".$champs [0], $id_sql) ;
                               If (SQL_nbr_lignes ($ok) > 0)
                                {
                                 If (SQL_nbr_lignes ($ok) < 9)
                                  {
                                   For ($j = 0 ; $j < SQL_nbr_lignes ($ok) ; $j++)
                                    {
                                     If ($j > 0) { Echo "<br>&nbsp;" ; }
                                     $ligne = SQL_ligne_suivante ($ok) ;
                                     Echo "<b>".$ligne [0]."</b>" ; If (SizeOf ($champs) > 1) { Echo "&nbsp;->&nbsp;".$ligne [1] ; }
                                    }
                                  }
                                 Else
                                  {
                                   Echo "Codes&nbsp;possibles&nbsp;:&nbsp;<b>" ;
                                   For ($j = 0 ; $j < SQL_nbr_lignes ($ok) ; $j++)
                                    {
                                     If ($j > 0) { Echo ", " ; }
                                     $ligne = SQL_ligne_suivante ($ok) ;
                                     Echo $ligne [0] ;
                                    }
                                   Echo "</b>" ;
                                  }
                                }
                               Else
                                {
                                 Echo "Aucun&nbsp;code&nbsp;dans&nbsp;la&nbsp;base." ;
                                }
                               Break ;
                      // Bdd MAJ
                      Case 2 : Echo $imp_texte [$table][$i][4] ;
                               Break ;
                     }
                    Echo "&nbsp;</td></tr>" ;
                   }
                 }
                Echo "</table></td></tr>" ;
                If ($imp_texte [$table][0][1] != "")
                 {
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                  Echo "<tr><td align=\"center\">&nbsp;Exemple&nbsp;:&nbsp;<b>".$imp_texte [$table][0][1]."</b>&nbsp;</td></tr>" ;
                 }
                If ($imp_texte [$table][0][2] != "")
                 {
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                  Echo "<tr><td align=\"center\">&nbsp;<b>".$imp_texte [$table][0][2]."</b>&nbsp;</td></tr>" ;
                 }
                If ($imp_texte [$table][0][10] > 0)
                 {
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                  For ($i = 0 ; $i < $imp_texte [$table][0][10] ; $i++)
                   {
                    $ok = SQL_commande ("SELECT COUNT(*) FROM ".$imp_texte [$table][0][11+$i], $id_sql) ;
                    $ligne = SQL_ligne_suivante ($ok) ;
                    Echo "<tr><td align=\"center\">&nbsp;Table&nbsp;<b>\"<i>".$imp_texte [$table][0][11+$i]."</i>\"</b>&nbsp;->&nbsp;" ;
                    If ((integer)$ligne [0] > 0) { Echo "OK" ; } Else { Echo "<blink>Vide</blink>&nbsp;!" ; }
                    Echo "</td></tr>" ;
                   }
                 }
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "<tr><td>&nbsp;<a href=\"./importation_csv.php\" title=\"Choix de l'&eacute;tape...\">&nbsp;<--PR&Eacute;C&Eacute;DENT&nbsp;</a>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\">&nbsp;<a href=\"./importation_csv.php?table=".$table."&etape=".($etape+1)."&numero_etape=".($numero_etape+1)."\" title=\"&Eacute;tape 2...\">&nbsp;SUIVANT-->&nbsp;</a>&nbsp;</td></tr>" ;
                Echo "</table></td></tr></table>" ;
                Break ;
       // Demande des donnees + Options d'importation
       Case 12 :
       Case 2 : $entete = var_courante ("entete", 0, 1) ;
                $separateur = var_courante ("separateur", 0, ";") ;
                $delimiteur = var_courante ("delimiteur", 0, 1) ;
                Echo "<script>function valide(){if(document.insertion.fichier.value==''){alert(\"Vous n'avez pas selectionne le fichier TEXTE au format CSV.\")}else{document.insertion.submit()}}</script>" ;
                Echo "<form action=\"./importation_csv.php\" name=\"insertion\" method=\"post\" enctype=\"multipart/form-data\">" ;
                Echo "<input type=\"hidden\" name=\"etape\" value=\"".($etape+1)."\">" ;
                Echo "<input type=\"hidden\" name=\"numero_etape\" value=\"".($numero_etape+1)."\">" ;
                Echo "<input type=\"hidden\" name=\"table\" value=\"".$table."\">" ;
                Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td bgcolor=\"".$l ["lien"]."\">&nbsp;<b>Importation&nbsp;".$imp_texte [0][$table][0].".</b>&nbsp;(".$numero_etape."/".$nombre_etapes.")&nbsp;</td></tr>" ;
                Echo "<tr><td>" ;
                Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\">&nbsp;Fichier&nbsp;au&nbsp;format&nbsp;TEXTE&nbsp;CSV&nbsp;:&nbsp;</td>" ;
                Echo "<td><input type=\"file\" name=\"fichier\" size=\"30\">&nbsp;</td></tr>" ;
                Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\">&nbsp;<input type=\"checkbox\" name=\"entete\" value=\"1\"" ; If ($entete == 1) { Echo " checked" ; }
                Echo "></td>" ;
                Echo "<td>&nbsp;Cochez&nbsp;cette&nbsp;case,&nbsp;si&nbsp;la&nbsp;premi&egrave;re&nbsp;ligne&nbsp;du&nbsp;fichier&nbsp;contient&nbsp;des&nbsp;ent&ecirc;tes.&nbsp;</td></tr>" ;
                Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
                Echo "<tr><td colspan=\"2\">&nbsp;<b>Options&nbsp;d'importation&nbsp;:</b>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\">&nbsp;S&eacute;parateur&nbsp;de&nbsp;champs&nbsp;:&nbsp;</td>" ;
                Echo "<td><select name=\"separateur\">" ;
                For ($i = 1 ; $i <= $separateurs [0][0] ; $i++)
                 {
                  Echo "<option value=\"".$separateurs [$i][0]."\"" ; If ($separateur == $separateurs [$i][0]) { Echo " selected" ; }
                  Echo ">".$separateurs [$i][0]."(".$separateurs [$i][1].")</option>" ;
                 }
                Echo "</select>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\">&nbsp;D&eacute;limiteur&nbsp;des&nbsp;champs&nbsp;texte&nbsp;:&nbsp;</td>" ;
                Echo "<td><select name=\"delimiteur\">" ;
                For ($i = 1 ; $i <= $delimiteurs [0] ; $i++)
                 {
                  Echo "<option value=\"".$i."\"" ; If ($delimiteur == $delimiteurs [$i]) { Echo " selected" ; }
                  Echo ">".$delimiteurs [$i]."</option>" ;
                 }
                Echo "</select>&nbsp;</td></tr>" ;
                Echo "<td align=\"right\">&nbsp;Format&nbsp;de&nbsp;la&nbsp;date&nbsp;:&nbsp;</td><td><select name=\"format_date\"><option value=\"0\">AAAA-MM-JJ</option><option value=\"1\">AAAAMMJJ</option>" ;
                Echo "<option value=\"2\">AAAA/MM/JJ</option><option value=\"3\">JJ-MM-AAAA</option><option value=\"4\">JJMMAAAA</option>" ;
                Echo "<option value=\"5\" selected>JJ/MM/AAAA</option>" ;
                Echo "</select></td></tr>" ;
                Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
                
                Echo "</form>" ;
                Echo "<tr><td colspan=\"2\">&nbsp;<a href=\"./importation_csv.php?etape=".($etape-1)."&numero_etape=".($numero_etape-1)."&table=".$table."\" title=\"Choix de l'&eacute;tape...\">&nbsp;<--PR&Eacute;C&Eacute;DENT&nbsp;</a>&nbsp;</td></tr>" ;
                Echo "<tr><td colspan=\"2\" align=\"right\"><a href=\"javascript:valide()\" border=\"0\" title=\"&Eacute;tape suivante...\">&nbsp;SUIVANT&nbsp;-->&nbsp;</a></td></tr>" ;
                Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
                Echo "</table></td></tr></table>" ;
                Break ;
       // Analyse du fichier + Association des champs
       Case 13 :
       Case 3 : // Recuperation du fichier et analyse
                $entete = var_courante ("entete", 0, 0) ;
                $separateur = var_courante ("separateur", 0, ";") ;
                $delimiteur = var_courante ("delimiteur", 0, 1) ;
                $format_date = var_courante ("format_date", 0, 0) ;
                $ok = 0 ;
                If ($_FILES ["fichier"]["error"] == 0)
                 {
                  If (Is_UpLoaded_File ($_FILES ["fichier"]["tmp_name"]))
                   {
	            $f = File ($_FILES ["fichier"]["tmp_name"]) ;
                    // Destruction de la table
                    $ok = SQL_commande ("DROP TABLE imp_texte", $id_sql) ;
                    // Creation de la table
                    $ok = SQL_commande ("CREATE TABLE imp_texte (id_imp_texte INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,ligne TEXT NOT NULL,PRIMARY KEY(id_imp_texte))", $id_sql) ;
                    // Insertion
                    $nombre_champs = 0 ;
                    $requete = "INSERT INTO imp_texte (ligne) VALUES " ;
                    $ligne = Explode ($separateur, Chop ($f [0])) ;
                    $nombre_champs = SizeOf ($ligne) ;
                    For ($i = 0 ; $i < SizeOf ($f) ; $i++)
                     {
                      If ($i > 0) { $requete .= "," ; }
                      $requete .= "('".Str_Replace ("'", "\\'", Chop ($f [$i]))."')" ;
                      //$ligne = Explode ($separateur, $f [0]) ;
                      //If (SizeOf ($ligne) > $nombre_champs) { $nombre_champs = SizeOf ($ligne) ; }
                     }
                    $ok = SQL_commande ($requete, $id_sql) ;
                    $resultats = SQL_commande ("SELECT COUNT(*) FROM imp_texte", $id_sql) ;
                    $r = SQL_ligne_suivante ($resultats) ;
                    $nombre_lignes = $r [0] ;
                    $ok = 1 ;
                   }
                 } 
                If ($ok == 0)
                 {
                  Switch ((integer)$_FILES ["fichier"]["error"])
                   {
                     Case 1 : $message = "Le param&egrave;tre <i>upload_max_filesize</i> dans <b>php.ini</b> est trop petit." ; Break ;
                     Case 2 : $message = "Le param&egrave;tre HTML, <i>MAX_FILE_SIZE</i> est trop petit." ; Break ;
                     Case 3 : $message = "Le transfert du fichier ne s'est pas effectu&eacute; dans sa totalit&eacute;." ; Break ;
                     Case 4 : $message = "Aucun transfert de fichier ne s'est effectu&eacute;." ; Break ;
                    Default : $message = "Erreur lors du t&eacute;l&eacute;chargement du fichier : Corrompu ??" ; Break ;
                   }
                 }
                Echo "<script>function valide(){document.insertion.submit()}</script>" ;
                Echo "<form action=\"./importation_csv.php\" name=\"insertion\" method=\"post\">" ;
                Echo "<input type=\"hidden\" name=\"etape\" value=\"".($etape+1)."\">" ;
                Echo "<input type=\"hidden\" name=\"numero_etape\" value=\"".($numero_etape+1)."\">" ;
                Echo "<input type=\"hidden\" name=\"table\" value=\"".$table."\">" ;
                Echo "<input type=\"hidden\" name=\"entete\" value=\"".$entete."\">" ;
                Echo "<input type=\"hidden\" name=\"separateur\" value=\"".$separateur."\">" ;
                Echo "<input type=\"hidden\" name=\"delimiteur\" value=\"".$delimiteur."\">" ;
                Echo "<input type=\"hidden\" name=\"format_date\" value=\"".$format_date."\">" ;
                Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td bgcolor=\"".$l ["lien"]."\">&nbsp;<b>Importation&nbsp;".$imp_texte [0][$table][0].".</b>&nbsp;(".$numero_etape."/".$nombre_etapes.")&nbsp;</td></tr>" ;
                Echo "<tr><td>" ;
                Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                If (IsSet ($message) And ($message != ""))
                 {
                  Echo "<tr><td>&nbsp;<b>ATTENTION&nbsp;:</b>&nbsp;</td>" ;
                  Echo "<tr><td>&nbsp;".$message."&nbsp;</td>" ;
                  Echo "<tr><td>&nbsp;<br>&nbsp;<br>&nbsp;Contactez&nbsp;votre&nbsp;administrateur&nbsp;syst&egrave;me&nbsp;pour&nbsp;r&egrave;gler&nbsp;ce&nbsp;probl&egrave;me&nbsp;!&nbsp;</td>" ;
                  Echo "<tr><td>&nbsp;</td>" ;
                  Echo "<tr><td>&nbsp;<a href=\"./importation_csv.php?etape=".($etape-1)."&numero_etape=".($numero_etape-1)."&table=".$table."&entete=".$entete."&separateur=".$separateur."&delimiteur=".$delimiteur."\" title=\"Choix de l'&eacute;tape...\">&nbsp;<--PR&Eacute;C&Eacute;DENT&nbsp;</a>&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;</td>" ;
                 }
                Else
                 {
                  Echo "<tr><td>&nbsp;Nombre&nbsp;de&nbsp;champs&nbsp;d&eacute;tect&eacute;s&nbsp;:&nbsp;<b>".$nombre_champs."</b>&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;Nombre&nbsp;d'enregistrements&nbsp;d&eacute;tect&eacute;s&nbsp;:&nbsp;<b>".$nombre_lignes."</b>&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;<b>Les&nbsp;associations&nbsp;marqu&eacute;es&nbsp;de&nbsp;".$repere_obligatoire."&nbsp;sont&nbsp;OBLIGATOIRES.</b></td></tr>" ;
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;<b>Association&nbsp;des&nbsp;champs&nbsp;&agrave;&nbsp;importer</b>&nbsp;:&nbsp;</td></tr>" ;
                  Echo "<tr><td align=\"center\">&nbsp;" ;
                  Echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                  Echo "<tr bgcolor=\"".$l ["lien"]."\"><td align=\"center\"><b>&nbsp;Champ&nbsp;</b></td>" ;
                  If ($entete == 1) { Echo "<td align=\"center\"><b>&nbsp;Ent&ecirc;te&nbsp;</b></td>" ; }
                  Echo "<td><b>&nbsp;Exemple&nbsp;</b></td><td align=\"center\"><b>&nbsp;Associ&eacute;&nbsp;&agrave;&nbsp;</b></td></tr>" ;
                  $entetes = SQL_commande ("SELECT ligne FROM imp_texte WHERE id_imp_texte=".$entete." LIMIT 1", $id_sql) ;
                  $ligne_entetes = SQL_ligne_suivante ($entetes) ;
                  $le = Explode ($separateur, $ligne_entetes [0]) ;
                  $resultat = SQL_commande ("SELECT ligne FROM imp_texte WHERE id_imp_texte>".$entete." LIMIT 1", $id_sql) ;
                  If (SQL_nbr_lignes ($resultat) != 1) { $resultat = SQL_commande ("SELECT ligne FROM imp_texte", $id_sql) ; }
                  $ligne = SQL_ligne_suivante ($resultat) ;
                  $l = Explode ($separateur, $ligne [0]) ;
                  Echo "<input type=\"hidden\" name=\"nombre\" value=\"".SizeOf ($l)."\">" ;
                  For ($i = 0 ; $i < SizeOf ($l) ; $i++)
                   {
                    $l [$i] = Chop ($l [$i]) ;
                    Echo "<tr><td align=\"center\">&nbsp;".($i+1)."&nbsp;</td>" ;
                    If ($entete == 1) { Echo "<td align=\"center\">&nbsp;".$le [$i]."&nbsp;</td>" ; }
                    If ($delimiteur > 1)
                     {
		      If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                      If (SubStr ($l [$i], 0, 1) == $car_delimiteur) { $l [$i] = SubStr ($l [$i], 1, StrLen ($l [$i])-1) ; }
                      If (SubStr ($l [$i], StrLen ($l [$i])-1, 1) == $car_delimiteur) { $l [$i] = SubStr ($l [$i], 0, StrLen ($l [$i])-1) ; }
                     }
                    Echo "<td>&nbsp;".$l [$i]."&nbsp;</td>" ;
                    Echo "<td><select name=\"c".$i."\"><option value=\"0\"></option>" ;
                    For ($j = 1 ; $j <= $imp_texte [$table][0][0] ; $j++)
                     {
                      Echo "<option value=\"".$j."\"" ;
                      If (($entete == 1) And (Chop ($le [$i]) == $imp_texte [$table][$j][10])) { Echo " selected" ; } //ElseIf ($i+1 == $j) { Echo " selected" ; }
                      ElseIf (($i+1 == $j) And ($i+1 <= $imp_texte [$table][0][0]) And ($entete == 0)) { Echo " selected" ; }
                      Echo ">" ; If ($imp_texte [$table][$j][1] == 1) { Echo $repere_obligatoire ; } Else { Echo $repere_non_obligatoire ; }
                      Echo $imp_texte [$table][$j][0]."</option>" ;
                     }
                    Echo "</select>&nbsp;</td></tr>" ;
                   }
                  Echo "</table>&nbsp;</td></tr>" ;
                  // Condition supplementaire 1
                  $champ_s = Explode (";", $imp_texte [$table][0][9]) ;
                  If (IsSet ($champ_s [1])) { $champ_1 = Explode ("->", $champ_s [0]) ; } Else { $champ_1 [0] = $champ_1 [1] = "" ; }
                  $champ_1 [1] = evaluation_champ ($champ_1 [1]) ;
                  Echo "<tr><td>&nbsp;<b>Conditions suppl&eacute;mentaires de s&eacute;lection des champs : (NON OBLIGATOIRE : Peut &ecirc;tre laiss&eacute;s vide)</b>&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;Le&nbsp;champ&nbsp;<select name=\"cs1\"><option value=\"0\">Aucune s&eacute;lection</option>" ;
                  For ($i = 1 ; $i <= $nombre_champs ; $i++)
                   {
                    Echo "<option value=\"".$i."\"" ;
                    If (($entete == 1) And (IsSet ($champ_1 [0]) And ($champ_1 [0] == $le [$i-1]))) { Echo " selected" ; }
                    If ($entete == 1) { Echo ">".$le [$i-1]."</option>" ; } Else { Echo ">num&eacute;ro ".$i."|".$nombre_champs."</option>" ; }
                   }
                  Echo "</select>&nbsp;doit contenir&nbsp;la&nbsp;valeur&nbsp;<input type=\"text\" name=\"ts1\" value=\"" ;
                  If (IsSet ($champ_1 [1])) { Echo $champ_1 [1] ; }
                  Echo "\" size=\"10\" maxlength=\"200\">&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;&nbsp;<b>OU</b>&nbsp;</td></tr>" ;
                  // Condition supplementaire 2
                  If (IsSet ($champ_s [1])) { $champ_2 = Explode ("->", $champ_s [1]) ; } Else { $champ_2 [0] = $champ_2 [1] = "" ; }
                  $champ_2 [1] = evaluation_champ ($champ_2 [1]) ;
                  Echo "<tr><td>&nbsp;Le&nbsp;champ&nbsp;<select name=\"cs2\"><option value=\"0\">Aucune s&eacute;lection</option>" ;
                  For ($i = 1 ; $i <= $nombre_champs ; $i++)
                   {
                    Echo "<option value=\"".$i."\"" ;
                    If (($entete == 1) And (IsSet ($champ_2 [0]) And ($champ_2 [0] == $le [$i-1]))) { Echo " selected" ; }
                    If ($entete == 1) { Echo ">".$le [$i-1]."</option>" ; } Else { Echo ">num&eacute;ro ".$i."</option>" ; }
                   }
                  Echo "</select>&nbsp;doit contenir&nbsp;la&nbsp;valeur&nbsp;<input type=\"text\" name=\"ts2\" value=\"" ;
                  If (IsSet ($champ_2 [1])) { Echo $champ_2 [1] ; }
                  Echo "\" size=\"10\" maxlength=\"200\">&nbsp;</td></tr>" ;
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                  Echo "</form>" ;
                  Echo "<tr><td>&nbsp;<a href=\"./importation_csv.php?etape=".($etape-1)."&numero_etape=".($numero_etape-1)."&table=".$table."&entete=".$entete."&separateur=".$separateur."&delimiteur=".$delimiteur."\" title=\"Choix de l'&eacute;tape...\">&nbsp;<--PR&Eacute;C&Eacute;DENT&nbsp;</a>&nbsp;</td></tr>" ;
                  Echo "<tr><td align=\"right\"><a href=\"javascript:valide()\" border=\"0\" title=\"&Eacute;tape suivante...\">&nbsp;SUIVANT&nbsp;-->&nbsp;</a></td></tr>" ;
                  Echo "<tr><td>&nbsp;</td></tr>" ;
                 }
                Echo "</table></td></tr></table>" ;
                Break ;
       // Traitement des donnees
       Case 4 : $entete = var_courante ("entete", 0, 0) ;
                $separateur = var_courante ("separateur", 0, ";") ;
                $delimiteur = var_courante ("delimiteur", 0, 1) ;
                $nombre = var_courante ("nombre", 0, 0) ;
                $cond_sup1 = var_courante ("cs1", 0, 0) ;
                $texte_cond_sup1 = var_courante ("ts1", 0, 0) ;
                $texte_cond_sup1 = Str_Replace ("\'", "'", $texte_cond_sup1) ;
                $cond_sup2 = var_courante ("cs2", 0, 0) ;
                $texte_cond_sup2 = var_courante ("ts2", 0, 0) ;
                $texte_cond_sup2 = Str_Replace ("\'", "'", $texte_cond_sup2) ;
                $format_date = var_courante ("format_date", 0, 0) ;
                Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td bgcolor=\"".$l ["lien"]."\">&nbsp;<b>Importation&nbsp;".$imp_texte [0][$table][0].".</b>&nbsp;(".$numero_etape."/".$nombre_etapes.")&nbsp;</td></tr>" ;
                Echo "<tr><td>" ;
                Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                If ($nombre > 0)
                 {
                  // Analyse de l'association
                  $association [0][0] = 0 ;
                  For ($i = 0 ; $i < $nombre ; $i++)
                   {
                    If ($_POST ["c".$i] != 0)
                     {
                      // Champ a prendre en compte
                      $association [0][0]++ ;
                      $association [$association [0][0]][0] = $i ; // Numero du champ
                      $association [$association [0][0]][1] = $_POST ["c".$i] ; // Numero de la table associee
                     }
                   }
                  If ($association [0][0] > 0)
                   {
                    $test_unicite = $imp_texte [$table][0][11+$imp_texte [$table][0][10]] ;
                    If ($imp_texte [$table][0][3] == 0)
                     {
                      // Preparation insertion
                      $nbr_plus = 0 ;
                      $requete = "INSERT INTO ".$imp_texte [0][$table][2]." (" ;
                      $champs_oublies = "" ;
                      For ($j = 1 ; $j <= $association [0][0] ; $j++)
                       {
                        If ($j > 1) { $requete .= "," ; }
                        If (StrPos ($imp_texte [$table][$association [$j][1]][5], "->"))
                         { $nom_champs = Explode ("->", $imp_texte [$table][$association [$j][1]][5]) ; $requete .= $nom_champs [1] ; }
                        Else
                         { $requete .= $imp_texte [$table][$association [$j][1]][5] ; }
                        // Champs supplementaires
                        If (IsSet ($imp_texte [$table][$association [$j][1]][6]))
                         {
                          $champs = Explode (";", $imp_texte [$table][$association [$j][1]][6]) ;
                          For ($k = 0 ; $k < SizeOf ($champs) ; $k++)
                           {
                            $ch = Explode ("->", $champs [$k]) ;
                            $requete .= ",".$ch [1] ;
                            $nbr_plus++ ;
                           }
                         }
                       }
                      // Champs supplementaires constants
                      For ($j = 1 ; $j <= $imp_texte [$table][0][0] ; $j++)
                       {
                        If (($imp_texte [$table][$j][1] == 1)  And ($imp_texte [$table][$j][2] == 3))
                         {
                          $requete .= ",".$imp_texte [$table][$j][3] ;
                         }
                       }
                      If ($imp_texte [$table][0][8] == 1) { $requete .= ",millesime" ; }
                      $requete .= ") VALUES " ;
                      // Recuperation des donnees
                      $resultats = SQL_commande ("SELECT ligne FROM imp_texte WHERE id_imp_texte>".$entete, $id_sql) ;
                      $nombre_resultats = SQL_nbr_lignes ($resultats) ;
                      $compteur = $oublie = 0 ;
                      //If (($nombre_resultats > 0) And ($imp_texte [0][$table][2] == "responsables")) { $re = SQL_commande ("DELETE FROM responsables", $id_sql) ; }
                      For ($i = 0 ; $i < $nombre_resultats ; $i++)
                       {
                        $ligne = SQL_ligne_suivante ($resultats) ;
                        $l = Explode ($separateur, $ligne [0]) ;
                        If (SizeOf ($l) >= $association [0][0])
                         {
                          $ok_cond = $cond_sup1 ;
                          If (($cond_sup1 > 0) And (IsSet ($l [$cond_sup1-1])))
                           {
                            $champ = Chop ($l [$cond_sup1-1]) ;
                            If ($delimiteur != 0)
                             {
			      If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
			      If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                              If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                              //If (SubStr ($champ, 0, 1) == SubStr ($delimiteurs [$delimiteur][1], 0, 1)) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                              //If (SubStr ($champ, StrLen ($champ)-1, 1) == SubStr ($delimiteurs [$delimiteur][1], 0, 1)) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                             }
                            If ($champ == $texte_cond_sup1) { $ok_cond = 0 ; }
                           }
                          If (($ok_cond != 0) And ($cond_sup2 > 0) And (IsSet ($l [$cond_sup2-1])))
                           {
                            $champ = Chop ($l [$cond_sup2-1]) ;
                            If ($delimiteur > 1)
                             {
			      If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                              //$car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ;
                              If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                              If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                             }
                            If ($champ == $texte_cond_sup2) { $ok_cond = 0 ; }
                           }
                          $ok_champ = 0 ;
                          If ($ok_cond == 0)
                           {
                            //If (($compteur > 0) And ($ok_champ == $association [0][0]+$nbr_plus)) { $requete .= "," ; }
                            // Test unicite
                            If ($test_unicite > 0)
                             {
                              $compteur_texte_unicite = 0 ;
                              $requete_unicite = "SELECT * FROM ".$imp_texte [0][$table][2]." WHERE " ;
                             }
                            $requete_n = "(" ;
                            $ok_champ = 0 ;
                            For ($j = 1 ; $j <= $association [0][0] ; $j++)
                             {
                              $champ = Chop ($l [$association [$j][0]]) ;
                              $plus = "" ;
                              $ok_bdd = 0 ;
                              If ($delimiteur > 1)
                               {
                                //$car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ;
				If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                                If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                                If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                               }
                              // Traitement BDD
                              If ($imp_texte [$table][$association [$j][1]][2] == 1)
                               {
                                $possibles = Explode (";", $imp_texte [$table][$association [$j][1]][4]) ;
                                $champs = Explode ("->", $imp_texte [$table][$association [$j][1]][5]) ;
                                $req = "SELECT ".$champs [0] ;
                                // Champs supplementaires
                                If (IsSet ($imp_texte [$table][$association [$j][1]][6]))
                                 {
                                  $champs = Explode (";", $imp_texte [$table][$association [$j][1]][6]) ;
                                  $nbr_champs = SizeOf ($champs) ;
                                  For ($k = 0 ; $k < $nbr_champs ; $k++)
                                   {
                                    $ch = Explode ("->", $champs [$k]) ;
                                    $req .= ",".$ch [0] ;
                                   }
                                 }
                                $req .= " FROM ".$imp_texte [$table][$association [$j][1]][3]." WHERE ".$possibles [0]."='".$champ."' " ;
                                If ($imp_texte [$table][$association [$j][1]][8] == 1) { $req .= "AND millesime='".millesime (0)."' " ; }
                                $req .= "LIMIT 1" ;
                                $ok_r = SQL_commande ($req, $id_sql) ;
                                If (SQL_nbr_lignes ($ok_r) == 1)
                                 {
                                  $bdd = SQL_ligne_suivante ($ok_r) ;
                                  $champ = $bdd [0] ;
                                  $ok_bdd = 1 ;
                                  // Champs supplementaires
                                  If (IsSet ($imp_texte [$table][$association [$j][1]][6]))
                                   {
                                    For ($k = 1 ; $k <= $nbr_champs ; $k++)
                                     {
                                      $plus .= ",'".Str_Replace ("'", "\'", $bdd [$k])."'" ;
                                      $ok_bdd++ ;
                                     }
                                   }
                                 }
                                Else
                                 {
                                  $champ = "" ;
                                  $ok_bdd = 1 ;
                                  For ($k = 1 ; $k < $nbr_champs ; $k++)
                                   {
                                    $plus .= ",''" ;
                                    $ok_bdd++ ;
                                   }
                                 }
                               }
                              Else
                               {
                                Switch ($imp_texte [$table][$association [$j][1]][3])
                                 {
                                   // Enumeration
                                   Case 2 : $possibles = Explode (";", $imp_texte [$table][$association [$j][1]][4]) ;
                                            For ($k = 0 ; $k < SizeOf ($possibles) ; $k++)
                                             {
                                              $po = Explode ("->", $possibles [$k]) ;
                                              If (SubStr ($champ, 0, StrLen ($po [0])) == $po [0]) { $champ = $po [1] ; $ok_bdd = 1 ; }
                                             }
                                            If ($ok_bdd == 0) { $po = Explode ("->", $possibles [0]) ; $champ = $po [1] ; $ok_bdd = 1 ; }
                                            Break ;
                                   // Date
                                   Case 3 : Switch ($format_date)
                                             {
                                              Case 1 : $champ = SubStr ($champ, 0, 4)."-".SubStr ($champ, 4, 2)."-".SubStr ($champ, 6, 2) ; Break ;
                                              Case 2 : $champ = Str_Replace ("/", "-", $champ) ; Break ;
                                              Case 3 : $dt = Explode ("-", $champ) ; $champ = $dt [0]."-".$dt [1]."-".$dt [2] ; Break ;
                                              Case 4 : $champ = SubStr ($champ, 0, 2)."-".SubStr ($champ, 2, 2)."-".SubStr ($champ, 4, 2) ; Break ;
                                              Case 5 : $dt = Explode ("/", $champ) ; $champ = $dt [2]."-".$dt [1]."-".$dt [0] ; Break ;
                                             }
                                            $ok_bdd = 1 ;
                                            Break ;
                                   // Numero ou nombre
                                   Case 4 : $ok_bdd = 1 ; Break ;
                                  Default : $ok_bdd = 1 ; Break ;
                                 }
                               }
                              // Test unicite
                              If ($test_unicite > 0)
                               {
                                //$requete_unicite = "SELECT * FROM ".$imp_texte [0][$table][2]." WHERE " ;
                                $ok_texte_unique = 0 ;
                                For ($k = 1 ; $k <= $test_unicite ; $k++)
                                 {
                                  If ($imp_texte [$table][0][12+$k] == $association [$j][1]) { $ok_texte_unique = 1 ; }
                                 }
                                If ($ok_texte_unique == 1)
                                 {
                                  If ($compteur_texte_unicite > 0) { $requete_unicite .= " AND " ; }
                                  $requete_unicite .= $imp_texte [$table][$association [$j][1]][5]."='".Str_Replace ("'", "\'", $champ)."'" ;
                                  $compteur_texte_unicite++ ;
                                 }
                               }
                              If ($j > 1) { $requete_n .= "," ; }
                              $requete_n .= "'".Str_Replace ("'", "\'", $champ)."'".$plus ;
                              $ok_champ += $ok_bdd ;
                             }
                            // Champs supplementaires constants
                            For ($j = 1 ; $j <= $imp_texte [$table][0][0] ; $j++)
                             {
                              If (($imp_texte [$table][$j][1] == 1)  And ($imp_texte [$table][$j][2] == 3))
                               {
                                $requete_n .= ",'".$imp_texte [$table][$j][4]."'" ;
                               }
                             }
                            If ($imp_texte [$table][0][8] == 1) { $requete_n .= ",'".$millesime."'" ; }
                            $requete_n .= ")" ;
                            If ($ok_champ == $association [0][0]+$nbr_plus)
                             {
                              If ($test_unicite > 0)
                               {
                                If ($imp_texte [$table][0][8] == 1) { $requete_unicite .= " AND millesime='".millesime (0)."'" ; }
                                $requete_unicite .= " LIMIT 1" ;
                                $unique = SQL_commande ($requete_unicite, $id_sql) ;
                                If (SQL_nbr_lignes ($unique) == 1) { $unique = 0 ; } Else { $unique = 1 ; }
                                //echo $requete_unicite."->".$unique."<br>" ;
                               }
                              Else { $unique = 1 ; }
                              If ($unique == 1)
                               {
                                //echo $requete.$requete_n."<br>" ;
                                $ok = SQL_commande ($requete.$requete_n, $id_sql) ;
                                $compteur++ ;
                               }
                             }
                            Else { $oublie++ ; $champs_oublies .= $requete_n."<br>" ; }
                           }
                          Else
                           {
                            // Aucune conditions valables
                           }
                         }
                       }
                      //echo $separateur."->".$delimiteur."->".$format_date."<br>".$cond_sup1."->".$texte_cond_sup1."<br>".$cond_sup2."->".$texte_cond_sup2."<br>".Str_Replace ("),(", "),<br>(", $requete)."<br>" ;
                      //echo $champs_oublies ;
                      //$ok = SQL_commande ($requete, $id_sql) ;
                      Echo "<tr><td>&nbsp;Insertion&nbsp;de&nbsp;".$compteur."&nbsp;enregistrement(s).&nbsp;</td></tr>" ;
                      // Mise a jour d'un ou plusieurs champs eventuels
                      If ($imp_texte [$table][0][4])
                       {
                        $tables = Explode ("->", $imp_texte [$table][0][4]) ;
                        $champs1 = Explode (";", $imp_texte [$table][0][5]) ;
                        $champs2 = Explode (";", $imp_texte [$table][0][6]) ;
                        $requete = "SELECT " ;
                        For ($i = 0 ; $i < SizeOf ($champs2) ; $i++)
                         {
                          $c2 = Explode ("->", $champs2 [$i]) ;
                          $requete .= "a.".$c2 [0]."," ;
                          $maj [$i][0] = $c2 [0] ;
                          $maj [$i][1] = $c2 [1] ;
                         }
                        $requete .= "b.".$imp_texte [$table][0][7]." FROM ".$tables [0]." a,".$tables [1]." b WHERE " ;
                        For ($i = 0 ; $i < SizeOf ($champs1) ; $i++)
                         {
                          $c1 = Explode ("->", $champs1 [$i]) ;
                          If ($i > 0) { $requete .= " AND " ; }
                          $requete .= "a.".$c1 [0]."=b.".$c1 [1] ;
                         }
                        $resultats = SQL_commande ($requete, $id_sql) ;
                        For ($i = 0 ; $i < SQL_nbr_lignes ($resultats) ; $i++)
                         {
                          $ligne = SQL_tableau_associatif ($resultats, "") ;
                          $requete = "UPDATE ".$tables [1]." SET " ;
                          For ($j = 0 ; $j < SizeOf ($maj) ; $j++)
                           {
                            If ($j > 0) { $requete .= "," ; }
                            $requete .= $maj [$j][1]."=".$ligne [$maj [$j][0]] ;
                           }
                          $requete .= " WHERE ".$imp_texte [$table][0][7]."='".$ligne [$j]."' LIMIT 1" ;
                          $ok = SQL_commande ($requete, $id_sql) ;
                         }
                       }
                     }
                    Else
                     {
                      // Mise a jour
                      // Recuperation des donnees
                      $resultats = SQL_commande ("SELECT ligne FROM imp_texte WHERE id_imp_texte>".$entete, $id_sql) ;
                      $nombre_resultats = SQL_nbr_lignes ($resultats) ;
                      $compteur = $oublie = 0 ;
                      For ($i = 0 ; $i < $nombre_resultats ; $i++)
                       {
                        // Preparation Mise a jour
                        $nbr_plus = 0 ;
                        $requete = "UPDATE ".$imp_texte [0][$table][2]." SET " ;
                        $nbr_fin = 0 ;
                        $requete_fin = " WHERE " ;
                        $ligne = SQL_ligne_suivante ($resultats) ;
                        $l = Explode ($separateur, $ligne [0]) ;
                        If (SizeOf ($l) >= $association [0][0])
                         {
                          $ok_cond = $cond_sup ;
                          If (($cond_sup > 0) And (IsSet ($l [$cond_sup-1])))
                           {
                            $champ = Chop ($l [$cond_sup-1]) ;
                            If ($delimiteur > 1)
                             {
			      If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                              //$car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ;
                              If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                              If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                             }
                            If ($champ == $texte_cond_sup) { $ok_cond = 0 ; }
                           }
                          $ok_champ = 0 ;
                          If ($ok_cond == 0)
                           {
                            $requete_n = "" ;
                            $ok_champ = 0 ;
                            $ok_association = 0 ;
                            For ($j = 1 ; $j <= $association [0][0] ; $j++)
                             {
                              $champ = Chop ($l [$association [$j][0]]) ;
                              $plus = "" ;
                              $ok_bdd = 0 ;
                              If ($delimiteur > 1)
                               {
			        If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                                //$car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ;
                                If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                                If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                               }
                              // Traitement BDD
                              If ($imp_texte [$table][$association [$j][1]][2] == 1)
                               {
                                $possibles = Explode (";", $imp_texte [$table][$association [$j][1]][4]) ;
                                $champs = Explode ("->", $imp_texte [$table][$association [$j][1]][5]) ;
                                $req = "SELECT ".$champs [0] ;
                                // Champs supplementaires
                                If (IsSet ($imp_texte [$table][$association [$j][1]][6]))
                                 {
                                  $champs = Explode (";", $imp_texte [$table][$association [$j][1]][6]) ;
                                  $nbr_champs = SizeOf ($champs) ;
                                  For ($k = 0 ; $k < $nbr_champs ; $k++)
                                   {
                                    $ch = Explode ("->", $champs [$k]) ;
                                    $req .= ",".$ch [0] ;
                                   }
                                 }
                                $req .= " FROM ".$imp_texte [$table][$association [$j][1]][3]." WHERE ".$possibles [0]."='".$champ."' " ;
                                If ($imp_texte [$table][0][8] == 1) { $req .= "AND millesime='".$millesime."' " ; }
                                $req .= "LIMIT 1" ;
                                $ok_r = SQL_commande ($req, $id_sql) ;
                                If (SQL_nbr_lignes ($ok_r) == 1)
                                 {
                                  $bdd = SQL_ligne_suivante ($ok_r) ;
                                  If ($ok_association > 0) { $requete .= "," ; }
                                  $requete .= $imp_texte [$table][$association [$j][1]][5]."='".Str_Replace ("'", "\'", $bdd [0])."'" ;
                                  $ok_champ++ ;
                                  $ok_association++ ;
                                 }
                                Else { $champ = "" ; $ok_bdd = 1 ; }
                               }
                              ElseIf ($imp_texte [$table][$association [$j][1]][2] == 2)
                               {
                                // BDD 2
                                If ($nbr_fin > 0) { $requete_fin .= " AND " ; }
                                $requete_fin .= $imp_texte [$table][$association [$j][1]][3]."='".Str_Replace ("'", "\'", $champ)."'" ;
                                $nbr_fin++ ;
                                $ok_champ++ ;
                               }
                              Else
                               {
                                Switch ($imp_texte [$table][$association [$j][1]][3])
                                 {
                                   // Enumeration
                                   Case 2 : $possibles = Explode (";", $imp_texte [$table][$association [$j][1]][4]) ;
                                            For ($k = 0 ; $k < SizeOf ($possibles) ; $k++)
                                             {
                                              $po = Explode ("->", $possibles [$k]) ;
                                              If (SubStr ($champ, 0, StrLen ($po [0])) == $po [0]) { $champ = $po [1] ; $ok_bdd = 1 ; }
                                             }
                                            If ($ok_bdd == 0) { $po = Explode ("->", $possibles [0]) ; $champ = $po [1] ; $ok_bdd = 1 ; }
                                            Break ;
                                   // Date
                                   Case 3 : Switch ($format_date)
                                             {
                                              Case 1 : $champ = SubStr ($champ, 0, 4)."-".SubStr ($champ, 4, 2)."-".SubStr ($champ, 6, 2) ; Break ;
                                              Case 2 : $champ = Str_Replace ("/", "-", $champ) ; Break ;
                                              Case 3 : $dt = Explode ("-", $champ) ; $champ = $dt [0]."-".$dt [1]."-".$dt [2] ; Break ;
                                              Case 4 : $champ = SubStr ($champ, 0, 2)."-".SubStr ($champ, 2, 2)."-".SubStr ($champ, 4, 2) ; Break ;
                                              Case 5 : $dt = Explode ("/", $champ) ; $champ = $dt [2]."-".$dt [1]."-".$dt [0] ; Break ;
                                             }
                                            $ok_bdd = 1 ;
                                            Break ;
                                    // Numero ou nombre
                                   Case 4 : $ok_bdd = 1 ; Break ;
                                  Default : $ok_bdd = 1 ; Break ;
                                 }
                                If ($ok_bdd == 1)
                                 {
                                  If ($ok_association > 0) { $requete .= "," ; }
                                  $requete .= $imp_texte [$table][$association [$j][1]][5]."='".Str_Replace ("'", "\'", $champ)."'" ;
                                  $ok_champ++ ;
                                  $ok_association++ ;
                                 }
                               }
                             }
                           }
                          $requete .= $requete_fin ;
                          If ($imp_texte [$table][0][8] == 1) { $requete .= " AND millesime='".$millesime."'" ; }
                          $requete .= " LIMIT 1" ;
                          $compteur++ ;
                          //echo Str_Replace ("),(", "),<br>(", $requete)."<br>" ;
                          $ok = SQL_commande ($requete, $id_sql) ;
                         }
                       }
                      Echo "<tr><td>&nbsp;Mise&nbsp;&agrave;&nbsp;jour&nbsp;de&nbsp;".$compteur."&nbsp;enregistrement(s).&nbsp;</td></tr>" ;
                     }
                    //echo $separateur."->".$delimiteur."->".$format_date."<br>".$cond_sup."->".$texte_cond_sup."<br>".Str_Replace ("),(", "),<br>(", $requete)."<br>" ;
                    //$ok = SQL_commande ($requete, $id_sql) ;
                    If ($oublie > 0)
                     {
                      Echo "<tr><td>&nbsp;Il&nbsp;y&nbsp;a&nbsp;".$oublie."&nbsp;enregistrement" ; If ($oublie > 1) { Echo "s" ; }
                      Echo "&nbsp;ne&nbsp;r&eacute;pondant&nbsp;pas&nbsp;aux&nbsp;crit&egrave;res&nbsp;de&nbsp;s&eacute;lection.&nbsp;</td></tr>" ;
                     }
                   }
                  Else
                   {
                    // Pas d'association
                    Echo "<tr><td>&nbsp;Aucune&nbsp;association&nbsp;n'a&nbsp;&eacute;t&eacute;&nbsp;d&eacute;fini.&nbsp;</td></tr>" ;
                   }
                 }
                Else
                 {
                  // Probleme : Pas de champs !
                  Echo "<tr><td>&nbsp;ATTENTION&nbsp;:&nbsp;Aucun&nbsp;champ&nbsp;n'a&nbsp;&eacute;t&eacute;&nbsp;d&eacute;fini.&nbsp;</td></tr>" ;
                 }
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\"><a href=\"./importation_csv.php\" border=\"0\" title=\"Retour au menu de l'importation...\">&nbsp;TERMIN&Eacute;&nbsp;-->&nbsp;</a></td></tr>" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "</table></td></tr></table>" ;
                Break ;
       // Synchronisation des tables eleves/responsables
       Case 10 : $eleves = SQL_commande ("SELECT * FROM eleves WHERE millesime='".$millesime."'", $id_sql) ;
                 $compteur = 0 ;
                 For ($i = 0 ; $i < SQL_nbr_lignes ($eleves) ; $i++)
                  {
                   $ligne = SQL_tableau_associatif ($eleves, "") ;
                   $responsables = SQL_commande ("SELECT * FROM responsables WHERE repere1='".$ligne ["repere1"]."' AND repere2='".$ligne ["repere2"]."' AND (legal='1' OR legal='2') AND millesime='".$millesime."' ORDER BY legal,correspondant LIMIT 2", $id_sql) ;
                   $nbr = SQL_nbr_lignes ($responsables) ;
                   If ($nbr > 0)
                    {
                     $requete = "UPDATE eleves SET exterieur='0'," ;
                     $r = SQL_tableau_associatif ($responsables, "") ;
                     Switch ($r ["civilite"])
                      {
                        Case 0 : $civ = "Mme" ; Break ;
                        Case 1 : $civ = "Mlle" ; Break ;
                        Case 2 : $civ = "M." ; Break ;
                       Default : $civ = "M. et Mme" ; Break ;
                      }
                     $requete .= "civilite_parents='".$civ."',nom_parents='".filtrage ($r ["nom"])."'," ;
                     $requete .= "prenom_parents='".filtrage ($r ["prenom"])."',adresse1='".filtrage ($r ["adresse1"])."'," ;
                     $requete .= "adresse2='".filtrage ($r ["adresse2"])."',cp='".$r ["code_postal"]."',ville='".filtrage ($r ["commune"])."'," ;
                     $requete .= "telephone='".$r ["telephone_domicile"]."',telephone_travail='".$r ["telephone_travail"]."'" ;
                     If ($nbr > 1)
                      {
                       $r = SQL_tableau_associatif ($responsables, "") ;
                       Switch ($r ["civilite"])
                        {
                          Case 0 : $civ = "Mme" ; Break ;
                          Case 1 : $civ = "Mlle" ; Break ;
                          Case 2 : $civ = "M." ; Break ;
                         Default : $civ = "M. et Mme" ; Break ;
                        }
                       $requete .= ",civilite_parents_p2='".$civ."',nom_parents_p2='".filtrage ($r ["nom"])."'," ;
                       $requete .= "prenom_parents_p2='".filtrage ($r ["prenom"])."',adresse1_p2='".filtrage ($r ["adresse1"])."'," ;
                       $requete .= "adresse2_p2='".filtrage ($r ["adresse2"])."',cp_p2='".filtrage ($r ["code_postal"])."',ville_p2='".filtrage ($r ["commune"])."'," ;
                       $requete .= "telephone_p2='".filtrage ($r ["telephone_domicile"])."',telephone_travail_p2='".filtrage ($r ["telephone_travail"])."'" ;
                      }
                     Else
                      {
                       $requete .= ",civilite_parents_p2='',nom_parents_p2='',prenom_parents_p2='',adresse1_p2=''," ;
                       $requete .= "adresse2_p2='',cp_p2='',ville_p2='',telephone_p2='',telephone_travail_p2=''" ;
                      }
                     $requete .= " WHERE id_eleve='".$ligne ["id_eleve"]."' LIMIT 1" ;
                     $compteur++ ;
                     $ok = SQL_commande ($requete, $id_sql) ;
                    }
                  }
                 sauvegarde_configuration ($droit_admin."_administration", "csv", "maj_responsables", "1") ;
                 sauvegarde_configuration ($droit_admin."_administration", "csv", "nombre_maj", $compteur) ;
                 Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                 Echo "<tr><td bgcolor=\"".$l ["lien"]."\">&nbsp;<b>Synchronisation&nbsp;&Eacute;l&egrave;ves/Responsables</b>&nbsp;</td></tr>" ;
                 Echo "<tr><td>" ;
                 Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                 Echo "<tr><td>&nbsp;</td></tr>" ;
                 Echo "<tr><td>&nbsp;Mise&nbsp;&agrave;&nbsp;jour&nbsp;de&nbsp;".$compteur."&nbsp;enregistrement(s).&nbsp;</td></tr>" ;
                 Echo "<tr><td>&nbsp;</td></tr>" ;
                 Echo "<tr><td align=\"right\"><a href=\"./importation_csv.php\" border=\"0\" title=\"Retour au menu de l'importation...\">&nbsp;TERMIN&Eacute;&nbsp;-->&nbsp;</a></td></tr>" ;
                 Echo "<tr><td>&nbsp;</td></tr>" ;
                 Echo "</table></td></tr></table>" ;
                 Break ;
       // Traitement des donnees Groupes/Options
       Case 14 :
                $entete = var_courante ("entete", 0, 0) ;
                $separateur = var_courante ("separateur", 0, ";") ;
                $delimiteur = var_courante ("delimiteur", 0, 1) ;
                $nombre = var_courante ("nombre", 0, 0) ;
                $cond_sup1 = var_courante ("cs1", 0, 0) ;
                $texte_cond_sup1 = var_courante ("ts1", 0, 0) ;
                $texte_cond_sup1 = Str_Replace ("\'", "'", $texte_cond_sup1) ;
                $cond_sup2 = var_courante ("cs2", 0, 0) ;
                $texte_cond_sup2 = var_courante ("ts2", 0, 0) ;
                $texte_cond_sup2 = Str_Replace ("\'", "'", $texte_cond_sup2) ;
                $format_date = var_courante ("format_date", 0, 0) ;
                Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
                Echo "<tr><td bgcolor=\"".$l ["lien"]."\">&nbsp;<b>Importation&nbsp;".$imp_texte [0][$table][0].".</b>&nbsp;(".$numero_etape."/".$nombre_etapes.")&nbsp;</td></tr>" ;
                Echo "<tr><td>" ;
                Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                If ($nombre > 0)
                 {
                  // Analyse de l'association
                  $association [0][0] = 0 ;
                  For ($i = 0 ; $i < $nombre ; $i++)
                   {
                    If ($_POST ["c".$i] != 0)
                     {
                      // Champ a prendre en compte
                      $association [0][0]++ ;
                      $association [$association [0][0]][0] = $i ; // Numero du champ
                      $association [$association [0][0]][1] = $_POST ["c".$i] ; // Numero de la table associee
                     }
                   }
                  If ($association [0][0] > 0)
                   {
                    $test_unicite = $imp_texte [$table][0][11+$imp_texte [$table][0][10]] ;
                    If ($imp_texte [$table][0][3] == 0)
                     {
                      // Recuperation des donnees
                      $resultats = SQL_commande ("SELECT ligne FROM imp_texte WHERE id_imp_texte>".$entete, $id_sql) ;
                      $nombre_resultats = SQL_nbr_lignes ($resultats) ;
                      $compteur_groupes = $compteur_options = $oublie = 0 ;
                      For ($i = 0 ; $i < $nombre_resultats ; $i++)
                       {
                        $ligne = SQL_ligne_suivante ($resultats) ;
                        $l = Explode ($separateur, $ligne [0]) ;
                        If (SizeOf ($l) >= $association [0][0])
                         {
                          $ok_cond = $cond_sup1 ;
                          If (($cond_sup1 > 0) And (IsSet ($l [$cond_sup1-1])))
                           {
                            $champ = Chop ($l [$cond_sup1-1]) ;
                            If ($delimiteur > 1)
                             {
			      If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                              //$car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ;
                              If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                              If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                             }
                            If ($champ == $texte_cond_sup1) { $ok_cond = 0 ; }
                           }
                          If (($ok_cond != 0) And ($cond_sup2 > 0) And (IsSet ($l [$cond_sup2-1])))
                           {
                            $champ = Chop ($l [$cond_sup2-1]) ;
                            If ($delimiteur > 1)
                             {
			      If ($delimiteur != 2) { $car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ; } Else { $car_delimiteur = "\"" ; }
                              //$car_delimiteur = SubStr ($delimiteurs [$delimiteur][1], 0, 1) ;
                              If (SubStr ($champ, 0, 1) == $car_delimiteur) { $champ = SubStr ($champ, 1, StrLen ($champ)-1) ; }
                              If (SubStr ($champ, StrLen ($champ)-1, 1) == $car_delimiteur) { $champ = SubStr ($champ, 0, StrLen ($champ)-1) ; }
                             }
                            If ($champ == $texte_cond_sup2) { $ok_cond = 0 ; }
                           }
                          $ok_champ = 0 ;
                          If ($ok_cond == 0)
                           {
                            // Condition supplementaire remplie
                            For ($j = 1 ; $j <= $association [0][0] ; $j++)
                             {
                              If ($imp_texte [$table][$association [$j][1]][5] == "repere1") { $repere1 = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "repere2") { $repere2 = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "code_classe") { $code_classe = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "code_groupe") { $code_groupe = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_1") { $option [1] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_2") { $option [2] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_3") { $option [3] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_4") { $option [4] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_5") { $option [5] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_6") { $option [6] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_7") { $option [7] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_8") { $option [8] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_9") { $option [9] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_10") { $option [10] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_11") { $option [11] = $l [$association [$j][0]] ; }
                              ElseIf ($imp_texte [$table][$association [$j][1]][5] == "option_12") { $option [12] = $l [$association [$j][0]] ; }
                             }
                            // Recherche eleve
                            If (IsSet ($repere2))
                             {
                              $r0 = SQL_commande ("SELECT id_eleve,repere1,repere2 FROM eleves WHERE repere2='".$repere2."' LIMIT 1", $id_sql) ;
                              If (SQL_nbr_lignes ($r0) == 1)
                               {
                                $rr0 = SQL_ligne_suivante ($r0) ;
                                $ok_eleve = 1 ;
                               }
                              Else { $ok_eleve = 0 ; }
                             }
                            // Traitement des groupes si existe
                            If (IsSet ($code_groupe) And IsSet ($code_classe) And ($ok_eleve == 1))
                             {
                              // Recherche Groupe de classe
                              $r1 = SQL_commande ("SELECT id_groupe_classe,discipline,code_disc FROM groupes_classe WHERE code_groupe='".filtrage ($code_groupe)."' AND code_classe='".$code_classe."' AND millesime='".millesime (0)."'", $id_sql) ;
                              If (SQL_nbr_lignes ($r1) == 1)
                               {
                                // A utiliser : Insertion de l'eleve dans le groupe si n'existe pas deja
                                $rr1 = SQL_ligne_suivante ($r1) ;
                                $r2 = SQL_commande ("SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$rr0 [0]."' AND discipine='".$rr1 [1]."' AND groupe='".$rr1 [0]."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ;
                                If (SQL_nbr_lignes ($r2) == 0)
                                 {
                                  $r3 = SQL_commande ("INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime)
                                                       VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','".$rr1 [1]."','".$rr1 [2]."','".$rr1 [0]."','".millesime (0)."')", $id_sql) ;
                                  //echo "INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime)
                                  //                     VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','".$rr1 [1]."','".$rr1 [2]."','".$rr1 [0]."','".millesime (0)."')<br>" ;
                                  $compteur_groupes++ ;
                                 }
                                Else
                                 {
                                  // Deja dans le groupe
                                 }
                               }
                              ElseIf (SQL_nbr_lignes ($r1) == 0)
                               {
                                // A creer
                                // Recherche la classe
                                $r3 = SQL_commande ("SELECT id_classe,nom_bref FROM classes WHERE nom_bref='".filtrage ($code_classe)."' LIMIT 1", $id_sql) ;
                                If (SQL_nbr_lignes ($r3) == 1)
                                 {
                                  $rr3 = SQL_ligne_suivante ($r3) ;
                                  // Creation du groupe classe
                                  $r3 = SQL_commande ("INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime)
                                                       VALUES ('".filtrage ($code_groupe)."','".$rr3 [0]."','".$rr3 [1]."','0','','0','".millesime (0)."')", $id_sql) ;
                                  //echo "INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime)
                                  //                     VALUES ('".filtrage ($code_groupe)."','".$rr3 [0]."','".$rr3 [1]."','0','','0','".millesime (0)."')<br>" ;
                                  $r4 = SQL_commande ("SELECT MAX(id_groupe_classe) FROM groupes_classe WHERE code_groupe='".filtrage ($code_groupe)."' AND classe='".$rr3 [0]."' AND discipline='0' AND service_classe='0' AND millesime='".millesime (0)."'", $id_sql) ;
                                  $rr4 = SQL_ligne_suivante ($r4) ;
                                  $r5 = SQL_commande ("INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime)
                                                       VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','0','','".$rr4 [0]."','".millesime (0)."')", $id_sql) ;
                                  $compteur_groupes++ ;
                                 }
                                Else
                                 {
                                  // Classe inconnue
                                 }
                               }
                              Else
                               {
                                // Il y en a trop donc on ne peut pas choisir
                               }
                             }
                            // Traitement des options si existe
                            For ($j = 1 ; $j <= 12 ; $j++)
                             {
                              If (IsSet ($option [$j]) And IsSet ($code_classe) And ($ok_eleve == 1))
                               {
                                // Recherche discipline
                                $r6 = SQL_commande ("SELECT id_discipline,code FROM disciplines WHERE code='".filtrage ($option [$j])."' LIMIT 1", $id_sql) ;
                                If (SQL_nbr_lignes ($r6) == 1)
                                 {
                                  $rr6 = SQL_ligne_suivante ($r6) ;
                                  // Recherche Option de classe
                                  $r7 = SQL_commande ("SELECT id_service_classe FROM services_classe WHERE code_classe='".$code_classe."' AND discipline='".$rr6 [0]."' AND optionnel='1' AND  millesime='".millesime (0)."'", $id_sql) ;
                                  If (SQL_nbr_lignes ($r7) == 1)
                                   {
                                    // A utiliser : Insertion de l'eleve dans l'option si n'existe pas deja
                                    $rr7 = SQL_ligne_suivante ($r7) ;
                                    $r8 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$rr0 [0]."' AND discipline='".$rr6 [0]."' AND service_classe='".$rr7 [0]."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ;
                                    If (SQL_nbr_lignes ($r8) == 0)
                                     {
                                      $r8 = SQL_commande ("INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime)
                                                           VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','".$rr6 [0]."','".$rr6 [1]."','".$rr7 [0]."','".millesime (0)."')", $id_sql) ;
                                      //echo "INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime)
                                      //                     VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','".$rr6 [0]."','".$rr6 [1]."','".$rr7 [0]."','".millesime (0)."')<br>" ;
                                      $compteur_options++ ;
                                     }
                                    Else
                                     {
                                      // Eleve ayant deja cette option
                                     }
                                   }
                                  ElseIf (SQL_nbr_lignes ($r7) == 0)
                                   {
                                    // A creer
                                    // Recherche la classe
                                    $r9 = SQL_commande ("SELECT id_classe,nom_bref FROM classes WHERE nom_bref='".filtrage ($code_classe)."' LIMIT 1", $id_sql) ;
                                    If (SQL_nbr_lignes ($r9) == 1)
                                     {
                                      $rr9 = SQL_ligne_suivante ($r9) ;
                                      // Creation du cours optionnel classe
                                      $r10 = SQL_commande ("INSERT INTO services_classe (classe,code_classe,discipline,code_disc,optionnel,groupe,millesime)
                                                            VALUES ('".$rr9 [0]."','".$rr9 [1]."','".$rr6 [0]."','".$rr6 [1]."','1','','0','".millesime (0)."')", $id_sql) ;
                                      //echo "INSERT INTO services_classe (classe,code_classe,discipline,code_disc,optionnel,groupe,millesime)
                                      //                      VALUES ('".$rr9 [0]."','".$rr9 [1]."','".$rr6 [0]."','".$rr6 [1]."','1','','0','".millesime (0)."')<br>" ;
                                      $r11 = SQL_commande ("SELECT MAX(id_service_classe) FROM services_classe WHERE classe='".$rr9 [0]."' AND discipline='".$rr6 [0]."' AND optionnel='1' AND groupe='0' AND millesime='".millesime (0)."'", $id_sql) ;
                                      $rr11 = SQL_ligne_suivante ($r11) ;
                                      $r12 = SQL_commande ("INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime)
                                                            VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','".$rr6 [0]."','".$rr6 [1]."','".$rr11 [0]."','".millesime (0)."')", $id_sql) ;
                                      //echo "INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime)
                                      //                      VALUES ('".$rr0 [0]."','".$rr0 [1]."','".$rr0 [2]."','".$rr6 [0]."','".$rr6 [1]."','".$rr11 [0]."','".millesime (0)."')<br>" ;
                                      $compteur_options++ ;
                                     }
                                    Else
                                     {
                                      // Classe inconnue
                                     }
                                   }
                                  Else
                                   {
                                    // Il y en a trop donc on ne peut pas choisir
                                   }
                                 }
                                Else
                                 {
                                  // Discipline inconnue
                                 }
                               }
                             }
                           }
                          Else
                           {
                            // Aucune conditions valables
                           }
                         }
                        Else
                         {
                          // Nombre de champs inferieur au nombre d'associations : Mauvais formatage
                         }
                       }
                      //echo $separateur."->".$delimiteur."->".$format_date."<br>".$cond_sup1."->".$texte_cond_sup1."<br>".$cond_sup2."->".$texte_cond_sup2."<br>".Str_Replace ("),(", "),<br>(", $requete)."<br>" ;
                      Echo "<tr><td>&nbsp;Insertion&nbsp;de&nbsp;".$compteur_groupes."&nbsp;groupe(s)&nbsp;et&nbsp;".$compteur_options."&nbsp;option(s).&nbsp;</td></tr>" ;
                     }
                    Else
                     {
                      // Mise a jour
                      // Recuperation des donnees
                      $compteur = 0 ;
                      Echo "<tr><td>&nbsp;Mise&nbsp;&agrave;&nbsp;jour&nbsp;de&nbsp;".$compteur."&nbsp;enregistrement(s).&nbsp;</td></tr>" ;
                     }
                    //echo $separateur."->".$delimiteur."->".$format_date."<br>".$cond_sup."->".$texte_cond_sup."<br>".Str_Replace ("),(", "),<br>(", $requete)."<br>" ;
                    //$ok = SQL_commande ($requete, $id_sql) ;
                    If ($oublie > 0) { Echo "<tr><td>&nbsp;Il&nbsp;y&nbsp;a&nbsp;".$oublie."&nbsp;enregistrement(s)&nbsp;ignor&eacute;(s).&nbsp;</td></tr>" ; }
                   }
                  Else
                   {
                    // Pas d'association
                    Echo "<tr><td>&nbsp;Aucune&nbsp;association&nbsp;n'a&nbsp;&eacute;t&eacute;&nbsp;d&eacute;fini.&nbsp;</td></tr>" ;
                   }
                 }
                Else
                 {
                  // Probleme : Pas de champs !
                  Echo "<tr><td>&nbsp;ATTENTION&nbsp;:&nbsp;Aucun&nbsp;champ&nbsp;n'a&nbsp;&eacute;t&eacute;&nbsp;d&eacute;fini.&nbsp;</td></tr>" ;
                 }
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "<tr><td align=\"right\"><a href=\"./importation_csv.php\" border=\"0\" title=\"Retour au menu de l'importation...\">&nbsp;TERMIN&Eacute;&nbsp;-->&nbsp;</a></td></tr>" ;
                Echo "<tr><td>&nbsp;</td></tr>" ;
                Echo "</table></td></tr></table>" ;
                Break ;
      }
    }
   Else
    {
     // Probleme
     Echo "<br><br><center>Il y a un probl&egrave;me d'acc&egrave;s a cette interface !<br>Recommencez SVP !</center>" ;
    }
  }
 Else
  {
   // PREMIERE PAGE
   Echo "<table border=\"1\" bgcolor=\"".$l ["couleur_fond"]."\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" style=\"border:1px solid #000000;border-collapse:collapse\">" ;
   Echo "<tr><td>" ;
   Echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse:collapse\">" ;
   Echo "<tr><td align=\"center\" colspan=\"2\">&nbsp;Bonjour.<br>&nbsp;Bienvenue&nbsp;sur&nbsp;l'interface&nbsp;d'importation&nbsp;texte&nbsp;CSV.&nbsp;<br>&nbsp;</td></tr>" ;
   Echo "<tr><td align=\"center\" colspan=\"2\">&nbsp;Voici&nbsp;les&nbsp;diff&eacute;rentes&nbsp;&eacute;tapes&nbsp;&agrave;&nbsp;parcourir&nbsp;:&nbsp;<br>&nbsp;</td></tr>" ;
   $lien_ok = 0 ;
   For ($i = 1 ; $i <= $imp_texte [0][0][0] ; $i++)
    {
     // Affichage
     Echo "<tr" ;
     If ($i%2 == 0) { Echo " bgcolor=\"".$l ["nom"]."\"" ; }
     Echo "><td align=\"right\" valign=\"top\">&nbsp;<b>&Eacute;tape&nbsp;".$i."</b>&nbsp;:</td>" ;
     Echo "<td>" ;
     If (($lien_ok == 0) Or ($ligne [0] > 0)) { Echo "<a href=\"./importation_csv.php?table=".$imp_texte [0][$i][1]."&etape=1&numero_etape=1\" border=\"0\">" ; }
     Echo ">&nbsp;Insertion/Mise&nbsp;&agrave;&nbsp;jour&nbsp;des&nbsp;".$imp_texte [0][$i][0]."&nbsp;<" ;
     If (($lien_ok == 0) Or ($ligne [0] > 0)) { Echo "</a>" ; }
     // tests
     $tests = Explode (";", $imp_texte [0][$i][2]) ;
     $conditions = Explode (";", $imp_texte [0][$i][3]) ;
     $bloquantes = Explode (";", $imp_texte [0][$i][4]) ;
     $nombre_tests = SizeOf ($tests) ;
     $tests_ok = 0 ;
     $message = "" ;
     For ($j = 0 ; $j < $nombre_tests ; $j++)
      {
       If ($conditions [$j] != "") { $c = "WHERE ".$conditions [$j] ; } Else { $c = "" ; }
       $ok = SQL_commande ("SELECT COUNT(*) FROM ".$tests [$j]." ".$c, $id_sql) ;
       $ligne = SQL_ligne_suivante ($ok) ;
       If ($j > 0) { $message .= "<br>" ; }
       $message .= "Table&nbsp;<b>".$tests [$j]."</b>&nbsp;->&nbsp;" ;
       If ($ligne [0] > 0) { $message .= "Ok&nbsp;:&nbsp;".$ligne [0]."&nbsp;enregistrement(s)" ; }
       Else { $message .= "<font color=\"#ff0000\"><b>Aucun&nbsp;enregistrement&nbsp;!</b></font>" ; $lien_ok = $bloquantes [$j] ; }
      }
     Echo "<br>&nbsp;".$message."</td></tr>" ;
    }
   $maj_responsables = restaure_configuration ($droit_admin."_administration", "csv", "maj_responsables") ;
   Echo "<tr" ; If ($i%2 == 0) { Echo " bgcolor=\"".$l ["nom"]."\"" ; }
   Echo "><td align=\"right\" valign=\"top\">&nbsp;<b>Suppl&eacute;ments</b>&nbsp;:</td>" ;
   Echo "<td><a href=\"./importation_csv.php?table=10&etape=10&numero_etape=1\" border=\"0\">>&nbsp;Synchronisation&nbsp;&Eacute;l&egrave;ves/Responsables&nbsp;<</a><br>&nbsp;" ;
   If (($maj_responsables == "") Or ($maj_responsables == 0)) { Echo "<font color=\"#ff0000\"><b>Non&nbsp;fait&nbsp;!</b></font>" ; }
   Else { Echo "Ok&nbsp;:&nbsp;".restaure_configuration ($droit_admin."_administration", "csv", "nombre_maj")."&nbsp;&eacute;l&egrave;ve(s)&nbsp;mis&nbsp;&agrave;&nbsp;jour." ; }
   Echo "<tr" ; If ($i%2 == 1) { Echo " bgcolor=\"".$l ["nom"]."\"" ; }
   Echo "><td></td>" ;
   $maj_groupes_options = restaure_configuration ($droit_admin."_administration", "csv", "maj_groupes_options") ;
   Echo "<td><a href=\"./importation_csv.php?table=".($imp_texte [0][0][0]+$imp_texte [0][0][1])."&etape=11&numero_etape=1\" border=\0\">>&nbsp;Insertion&nbsp;des&nbsp;Groupes/Options&nbsp;&Eacute;l&egrave;ves&nbsp;<</a><br>&nbsp;" ;
   If (($maj_groupes_options == "") Or ($maj_groupes_options == 0)) { Echo "<font color=\"#ff0000\"><b>Non&nbsp;fait&nbsp;!</b></font>" ; }
   Else { Echo "Ok&nbsp;:&nbsp;".restaure_configuration ($droit_admin."_administration", "csv", "nombre_maj_groupes_options")."&nbsp;groupe(s)/option(s)&nbsp;mis&nbsp;&agrave;&nbsp;jour." ; }
   Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
   Echo "<tr><td></td><td>&nbsp;Choisissez&nbsp;une&nbsp;&eacute;tape...</td></tr>" ;
   Echo "<tr><td colspan=\"2\">&nbsp;</td></tr>" ;
   Echo "</table></td></tr></table>" ;
  }
 Echo "</body></html>" ;
?>